package com.xueqiu.lovepetmedicalmanagersystem.mapper;

import com.xueqiu.lovepetmedicalmanagersystem.pojo.Owners;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @author xueqiu
 */
@Service
public interface OwnersMapper {
    /**
     * 根据宠物主人ID查询单个宠物主人
     * @param ownId 宠物主人ID
     * @return 宠物主人对象；可能找不到为NULL
     */
    Owners queryOwnerById(
            @Param("ownId")
            Integer ownId
    );

    /**
     * 根据宠物主人姓名模糊查询多个宠物主人
     * @param ownName 宠物主人姓名关键词
     * @return 符合关键词的宠物主人对象列表；可能找不到为EMPTY
     */
    List<Owners> queryOwnerLikeName(
            @Param("ownName")
            String ownName
    );

    /**
     * 根据宠物主人姓名查询单个宠物主人；前提是宠物主人姓名无重复
     * TODO 名称重复问题
     * @param ownName 宠物主人姓名
     * @return 宠物主人对象；可能找不到为NULL
     */
    Owners queryOwnerByName(
            @Param("ownName")
            String ownName
    );

    /**
     * 根据宠物主人ID更新单个数据
     * @param owners 数据源，包含宠物主人ID
     * @return 更新条数
     */
    Integer updateOwn(
            @Param("element")
            Owners owners
    );

    /**
     * 新增单个宠物主人数据
     * @param owners 数据源，不包含宠物主人ID
     * @return 新增条数
     */
    Integer insertOwn(
            @Param("element")
            Owners owners
    );

    /**
     * 查询所有宠物主人
     * @return 宠物主人对象列表；可能找不到为EMPTY
     */
    List<Owners> queryAllOwners();
}
